package A_review.review1_17;

import listNodePractice.ListNode;

import java.util.List;

public class Class25 {

    public ListNode reverseKGroup(ListNode head, int k) {
        ListNode dumpy = new ListNode(-1);
        dumpy.next=head;
        //TODO:2024/1/17  haha
        ListNode pre=dumpy;
        ListNode end=dumpy;
        while (end!=null){
            for (int i = 0; i < k&&end!=null; i++) {
                end=end.next;
            }
            if (end==null){
                break;
            }
            ListNode start=pre.next;
            ListNode  next=end.next;
            end.next=null;
            ListNode reverse = reverse(start);
            pre.next=reverse;
            start.next=next;
            //TODO:2024/1/17  haha  回归到上面
            pre=start;
            end=pre;
        }
        return   dumpy.next;
    }



    public  ListNode reverse(ListNode  head){
       if (head==null){
           return null;
       }
       ListNode pre=null;
       ListNode  cur=head,next=head;
       while (cur!=null){
           next=cur.next;
           cur.next=pre;
           pre=cur;
           cur=next;
       }
       return  pre;
    }

}
